<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // await右侧是promise对象
        // 必须配合async函数使用！
        // 非promise对象 返回其结果
        // promise成功，则返回其成功结果值
        // promise失败，则抛出错误

        // (async function () {
        //     // 如果右侧是非promise对象，值是什么就是什么;    
        //     //   let a=  await 123; 

        //     //  如果右侧是promise，只返回成功的结果值
        //     // await 右侧的promise如果是失败的，就会报错
        //     try {
        //         let result = await new Promise((res, rej) => {
        //             //    res('success');
        //             rej('error');
        //         });
        //         console.log(result);
        //     } catch (err) {
        //         console.log(err);
        //     }
        // })()

        // console.log(000);

        // await后面的代码多会执行？
        (async function () {
            console.log(111);
            // 让后面的等一等 - 等我有结果了,你再往下执行！
            // await - 我只接受成功的结果值 ,如果右侧promise失败了！就报错
            try {
                let result = await new Promise((res, rej) => {
                    setTimeout(() => {
                        // res('ok');
                        rej('error');
                    }, 3000);
                });
                console.log(result);
            } catch (err) {
                console.log(err);
            }
            console.log(222);
        })()

        console.log("end");


    </script>
</body>

</html>